package cn.myframe.entity.sys;

import cn.myframe.entity.bus.BusCompanyEntity;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * 系统用户
 * 
 * @author chenshun
 * @email sunlightcs@gmail.com
 * @date 2016年9月18日 上午9:28:55
 */
@TableName("SYS_USER")
public class SysUserEntity implements Serializable {
	private static final long serialVersionUID = 1L;
	
	/**
	 * 用户ID
	 */
	@TableId("USER_ID")
	private Long userId;

	/**
	 * 用户名
	 */
	@TableField("USER_NAME")
	private String username;

	/**
	 * 密码
	 */
	@TableField("USER_PASSWORD")
	private String password;

	/**
	 * 邮箱
	 */
	@TableField("EMAIL")
	private String email;

	/**
	 * 手机号
	 */
	@TableField("MOBILE")
	private String mobile;

	/**
	 * 状态  0：禁用   1：正常
	 */
	private Integer status;
	
    /**
     * 用户类型  1：系统用户   2：广告主用户
     */
    private Integer type;
    
    //用户密码更新时间
    @TableField("PASSWORD_UPDATE_TIME")
  	private String passwordUpdateTime;
  	//禁止登陆时间
    @TableField("BAN_LOGIN_TIME")
  	private String banLoginTime;
  	//
  	private String salt;
  	//
  	@TableField("AGENT_NO")
  	private Long agentNo;
  	//
  	@TableField("LOGIN_IP")
  	private String loginIp;
  	//语言
  	private String language;
  	@TableField(exist = false)
  	private String confirmPassword;
	
	/**
	 * 角色ID列表
	 */
  	@TableField(exist = false)
	private List<Long> roleIdList;
	
	/**
	 * 创建者ID
	 */
	@TableField("CREATE_BY")
	private Long createBy;

	/**
	 * 创建时间
	 */
	@TableField("CREATE_TIME")
	private Date createTime;
	
	/**
	 * 用户登录时间
	 */
	@TableField("LOGIN_TIME")
	private Date loginTime;

	/**
	 * 创建者
	 */
	@TableField(exist = false)
	private SysUserEntity creator;
	
	/**
	 *运营商ID
	 */
	@TableField("COMPANY_NO")
	private Long companyNo;	

	/**
	 * 关联运营商
	 */
	@TableField(exist = false)
	private BusCompanyEntity company;
	
	
	@TableField(exist = false)
	private List<SysRoleEntity> roleList;
	
	@TableField(exist = false)
	private String roleNames;
	
	@TableField(exist = false)
	private String companyName;
	
	
    public List<SysRoleEntity> getRoleList() {
		return roleList;
	}

	public void setRoleList(List<SysRoleEntity> roleList) {
		this.roleList = roleList;
	}

    /**
     * 获取：
     * @return SysUserEntity
     */
	public SysUserEntity getCreator() {
        return creator;
    }

    /**
     * 设置：
     * @param creator 
     */
    public void setCreator(SysUserEntity creator) {
        this.creator = creator;
    }

    /**
	 * 设置：
	 * @param userId 
	 */
	public void setUserId(Long userId) {
		this.userId = userId;
	}

	/**
	 * 获取：
	 * @return Long
	 */
	public Long getUserId() {
		return userId;
	}
	
	/**
	 * 设置：用户名
	 * @param username 用户名
	 */
	public void setUsername(String username) {
		this.username = username;
	}

	/**
	 * 获取：用户名
	 * @return String
	 */
	public String getUsername() {
		return username;
	}
	
	/**
	 * 设置：密码
	 * @param password 密码
	 */
	public void setPassword(String password) {
		this.password = password;
	}

	/**
	 * 获取：密码
	 * @return String
	 */
	public String getPassword() {
		return password;
	}
	
	/**
	 * 设置：邮箱
	 * @param email 邮箱
	 */
	public void setEmail(String email) {
		this.email = email;
	}

	/**
	 * 获取：邮箱
	 * @return String
	 */
	public String getEmail() {
		return email;
	}
	
	/**
	 * 设置：手机号
	 * @param mobile 手机号
	 */
	public void setMobile(String mobile) {
		this.mobile = mobile;
	}

	/**
	 * 获取：手机号
	 * @return String
	 */
	public String getMobile() {
		return mobile;
	}
	
	/**
	 * 设置：状态  0：禁用   1：正常
	 * @param status 状态  0：禁用   1：正常
	 */
	public void setStatus(Integer status) {
		this.status = status;
	}

	/**
	 * 获取：状态  0：禁用   1：正常
	 * @return Integer
	 */
	public Integer getStatus() {
		return status;
	}
	
    /**
     * 设置：类型  1：系统用户  2：广告主用户
     */	
	public Integer getType() {
        return type;
    }
	
    /**
     * 获取：类型  1：系统用户  2：广告主用户
     * @return Integer
     */
    public void setType(Integer type) {
        this.type = type;
    }

    /**
	 * 设置：创建时间
	 * @param createTime 创建时间
	 */
	public void setCreateTime(Date createTime) {
		this.createTime = createTime;
	}

	/**
	 * 获取：创建时间
	 * @return Date
	 */
	public Date getCreateTime() {
		return createTime;
	}

	public List<Long> getRoleIdList() {
		return roleIdList;
	}

	public void setRoleIdList(List<Long> roleIdList) {
		this.roleIdList = roleIdList;
	}

	/**
	 * 设置：用户密码更新时间
	 */
	public void setPasswordUpdateTime(String passwordUpdateTime) {
		this.passwordUpdateTime = passwordUpdateTime;
	}
	/**
	 * 获取：用户密码更新时间
	 */
	public String getPasswordUpdateTime() {
		return passwordUpdateTime;
	}
	/**
	 * 设置：禁止登陆时间
	 */
	public void setBanLoginTime(String banLoginTime) {
		this.banLoginTime = banLoginTime;
	}
	/**
	 * 获取：禁止登陆时间
	 */
	public String getBanLoginTime() {
		return banLoginTime;
	}
	/**
	 * 设置：
	 */
	public void setSalt(String salt) {
		this.salt = salt;
	}
	/**
	 * 获取：
	 */
	public String getSalt() {
		return salt;
	}
	/**
	 * 设置：
	 */
	public void setAgentNo(Long agentNo) {
		this.agentNo = agentNo;
	}
	/**
	 * 获取：
	 */
	public Long getAgentNo() {
		return agentNo;
	}
	/**
	 * 设置：
	 */
	public void setLoginIp(String loginIp) {
		this.loginIp = loginIp;
	}
	/**
	 * 获取：
	 */
	public String getLoginIp() {
		return loginIp;
	}
	/**
	 * 设置：语言
	 */
	public void setLanguage(String language) {
		this.language = language;
	}
	/**
	 * 获取：语言
	 */
	public String getLanguage() {
		return language;
	}
	
	/**
	 * 设置：创建者ID
	 */
	public void setCreateBy(Long createBy) {
		this.createBy = createBy;
	}
	/**
	 * 获取：创建者ID
	 */
	public Long getCreateBy() {
		return createBy;
	}
	
	/**
	 * 设置：运营商ID
	 */
	public void setCompanyNo(Long companyNo) {
		this.companyNo = companyNo;
	}
	/**
	 * 获取：运营商ID
	 */
	public Long getCompanyNo() {
		return companyNo;
	}
	
	public Date getLoginTime() {
		return loginTime;
	}

	public void setLoginTime(Date loginTime) {
		this.loginTime = loginTime;
	}



	public void setCompanyName(String companyName) {
		this.companyName = companyName;
	}

	public String getCompanyName() {
		return companyName;
	}

	public String getConfirmPassword() {
		return confirmPassword;
	}

	public void setConfirmPassword(String confirmPassword) {
		this.confirmPassword = confirmPassword;
	}

	public String getRoleNames() {
		String names = "";
		if(roleList != null){
			for(SysRoleEntity role : roleList){
				names += role.getRoleName() + " ";
			}
		}
		return names;
	}

	public void setRoleNames(String roleNames) {
		this.roleNames = roleNames;
	}
	
	public BusCompanyEntity getCompany() {
        return company;
    }

    public void setCompany(BusCompanyEntity company) {
        this.company = company;
    }
	
	
	
	
	
	
}
